import {post} from '../utils/network';
import {getData} from '../utils/storageUtils';
import { getCurrentFormattedTime } from "../utils/dateUtils"; // 导入封装的请求工具

let userId = null;

const loadUserId = async () => {
  try {
    const loginInfo = await getData('loginInfoKey');
    if (loginInfo) {
      userId = loginInfo.userId;
    }
  } catch (error) {
    console.error('获取用户 ID 失败:', error);
  }
};

const getUserId = () => {
  return userId;
};

export {loadUserId, getUserId};

const API = {
  // 用户登录
  loginReq: (username, password) => {
    const formData = new FormData();
    formData.append('account', username); // 手机号
    formData.append('password', password); // 密码
    return post('/mobileResultInfoController!userLogin', formData);
  },

  // 用户注册
  registerReq: (phone, code, password, payPassword, invitationCode) => {
    const formData = new FormData();
    formData.append('yhsjh', phone); // 手机号
    // formData.append('yhyzm', code); // 验证码
    formData.append('yhmm', password); // 密码
    formData.append('tjryqm', invitationCode); // 推荐人邀请码（邀请码）
    formData.append('zfmm', payPassword);
    // formData.append('yhnc', '新注册用户NC');
    return post('/mobileResultInfoController!userRegister', formData);
  },

  // 修改用户地址信息
  modifyUserAddressReq: (address, phone) => {
    const formData = new FormData();
    formData.append('yhsjh', phone); // 用户手机号
    formData.append('extendsSix', address); // 用户地址
    return post('/mobileResultInfoController!userInfoImprove', formData);
  },

  // 修改用户密码信息
  modifyUserPasswordReq: (password, payPassword, phone) => {
    const formData = new FormData();
    formData.append('yhsjh', phone); // 用户手机号
    formData.append('yhmm', password);
    formData.append('zfmm', payPassword);
    return post('/mobileResultInfoController!userInfoImprove', formData);
  },

  // 查询用户所有信息
  userInfoReq: (yhbq = '', yhmc = '', yhzh = '') => {
    const formData = new FormData();
    formData.append('id', getUserId()); // 用户ID
    formData.append('yhbq', yhbq); // 用户标签
    formData.append('yhmc', yhmc); // 用户名称
    formData.append('yhzh', yhzh); // 用户账号
    formData.append('page', '1'); // 用户账号
    formData.append('rows', '1'); // 用户账号
    return post('/mobileResultInfoController!getUserInfoList', formData);
  },

  // 积分商城商品列表
  pointsGoodsReq: (page, rows) => {
    const formData = new FormData();
    formData.append('yhid', ''); // 用户ID
    formData.append('spzt', '2'); // 商品状态，1-待上架，2-已上架
    formData.append('spxs', '1'); // 1-实体商品 2-虚拟商品 3-抢购商品？ （积分商城商品形式有1和2）
    formData.append('page', page);
    formData.append('rows', rows);
    return post('/mobileResultInfoController!getBaseGoodsList', formData);
  },

  // 批发抢购商品列表
  panicGoodsReq: (yhid, cgcc, spzt, page, rows, extendsOne) => {
    const formData = new FormData();
    formData.append('yhid', yhid); // 用户ID
    formData.append('cgcc', cgcc); // 上午场、下午场
    formData.append('spzt', spzt);
    formData.append('page', page);
    formData.append('rows', rows);
    formData.append('extendsOne', extendsOne);
    return post('/mobileResultInfoController!getPanicGoodsList', formData);
  },

  // 积分商品兑换
  goodsExchangeReq: productId => {
    const formData = new FormData();
    formData.append('yhid', getUserId()); // 用户ID
    formData.append('spid', productId); // 商品ID
    return post('/mobileResultInfoController!appGoodsExchange', formData);
  },

  // 积分兑换记录
  pointsExchangeRecordReq: (page, rows) => {
    const formData = new FormData();
    formData.append('yhid', getUserId()); // 用户ID
    formData.append('jfbhlx', '2');
    formData.append('page', page);
    formData.append('rows', rows);
    return post('/mobileResultInfoController!getPointRecordList', formData);
  },

  // 积分增减记录
  getPointRecordList: (page, rows) => {
    const formData = new FormData();
    formData.append('yhid', getUserId()); // 用户ID
    formData.append('page', page);
    formData.append('rows', rows);
    return post('/mobileResultInfoController!getPointRecordList', formData);
  },

  // 服务费增减记录
  getChargeRecordList: (page, rows) => {
    const formData = new FormData();
    formData.append('yhid', getUserId()); // 用户ID
    formData.append('page', page);
    formData.append('rows', rows);
    return post('/mobileResultInfoController!getChargeRecordList', formData);
  },

  // 分红记录
  getDividendRecordList: (page, rows) => {
    const formData = new FormData();
    formData.append('yhid', getUserId()); // 用户ID
    formData.append('page', page);
    formData.append('rows', rows);
    return post('/mobileResultInfoController!getDividendRecordList', formData);
  },

  // 查询买方仓库订单列表
  getBuyOrderInfoList: (page, rows) => {
    const formData = new FormData();
    formData.append('spid', ''); // 商品id
    formData.append('buyId', getUserId()); // 买方id
    formData.append('sellId', ''); // 卖方id
    formData.append('spbt', ''); // 商品标题
    formData.append('spzt', '7'); // 商品状态 - 买方已提货
    formData.append('page', page);
    formData.append('rows', rows);
    return post('/mobileResultInfoController!getOrderInfoList', formData);
  },

  // 查询卖方仓库订单列表
  getSellOrderInfoList: (page, rows) => {
    const formData = new FormData();
    formData.append('yhid', getUserId()); // 用户ID
    formData.append('cgcc', ''); // 上午场、下午场
    formData.append('spzt', '');
    formData.append('goodsFlag', '1');
    formData.append('page', page);
    formData.append('rows', rows);
    return post('/mobileResultInfoController!getPanicGoodsList', formData);
  },

  // 查询交易中订单列表
  getTransOrderInfoList: (buyId, sellId, page, rows) => {
    const formData = new FormData();
    formData.append('spid', ''); // 商品id
    formData.append('buyId', buyId); // 买方id
    formData.append('sellId', sellId); // 卖方id
    formData.append('spbt', ''); // 商品标题
    formData.append('spzt', ''); // 商品状态
    formData.append('transFlag', '1'); // 代表交易中状态，4、5、6
    formData.append('page', page);
    formData.append('rows', rows);
    return post('/mobileResultInfoController!getOrderInfoList', formData);
  },

  // 查询已完成订单列表
  getCompletedOrderInfoList: (buyId, sellId, page, rows) => {
    const formData = new FormData();
    formData.append('spid', ''); // 商品id
    formData.append('buyId', buyId); // 买方id
    formData.append('sellId', sellId); // 卖方id
    formData.append('spbt', ''); // 商品标题
    formData.append('spzt', ''); // 商品状态
    formData.append('extendsOne', '11'); // 代表已完成
    formData.append('page', page);
    formData.append('rows', rows);
    return post('/mobileResultInfoController!getOrderInfoList', formData);
  },

  // 查询当天抢购的订单
  getPurchasedOrderInfoList: () => {
    const formData = new FormData();
    formData.append('buyId', getUserId()); // 买方id
    formData.append('createTime', getCurrentFormattedTime('YYYY-MM-DD'));
    // formData.append('zpsj', '2025-02-12');
    formData.append('page', '1');
    formData.append('rows', '50');
    return post('/mobileResultInfoController!getOrderInfoList', formData);
  },

  // 实名认证
  addUserBankCard: (sfzh, yhmc) => {
    const formData = new FormData();
    formData.append('yhid', userId); // 用户ID
    formData.append('sfzh', sfzh); // 身份证号
    formData.append('yhmc', yhmc); // 姓名
    return post('/mobileResultInfoController!addUserBankCard', formData);
  },

  // 更新商品状态
  updateGoodsStatus: (spzt, spid, buyId = '') => {
    const formData = new FormData();
    formData.append('spzt', spzt); // 商品状态
    formData.append('spid', spid); // 商品id
    formData.append('buyId', buyId); // 买家id
    return post('/mobileResultInfoController!updateGoodsStatus', formData);
  },

  // 获取抢购场次，1关闭，2开启
  getSessionRecordList: () => {
    const formData = new FormData();
    formData.append('ccbt', '');
    formData.append('cczt', '');
    formData.append('page', '1');
    formData.append('rows', '20');
    return post('/mobileResultInfoController!getSessionRecordList', formData);
  },

  // 服务费转账
  feeTransferReq: (phone, fee) => {
    const formData = new FormData();
    formData.append('yhid', getUserId());
    formData.append('bczrsjh', phone); // 被充值人手机号
    formData.append('czje', fee);
    return post('/mobileResultInfoController!feeTransfer', formData);
  },

  // 获取验证码
  getVerifyCode: () => {
    const formData = new FormData();
    formData.append('yhid', getUserId());
    return post('/mobileResultInfoController!getVerifyCode', formData);
  },
};

// 导出所有接口
export default API;
